home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / RIncludes / ImageCodec.r < prev    next >
Encoding:
Text File  |  1998-04-09  |  6.4 KB  |  230 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        ImageCodec.r
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __IMAGECODEC_R__
  20. #define __IMAGECODEC_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #include "Components.r"
  27. #include "ImageCompression.r"
  28. #define kParameterTitleName             'name'
  29. #define kParameterTitleID                 1
  30.  
  31. #define kParameterWhatName                 'what'
  32. #define kParameterWhatID                 1
  33.  
  34. #define kParameterVersionName             'vers'
  35. #define kParameterVersionID             1
  36.  
  37. #define kParameterRepeatableName         'pete'
  38. #define kParameterRepeatableID             1
  39.  
  40.  
  41.     #define kParameterRepeatableTrue    long { "1" }
  42.     #define kParameterRepeatableFalse    long { "0" }
  43.  
  44. #define kParameterAlternateCodecName     'subs'
  45. #define kParameterAlternateCodecID         1
  46.  
  47. #define kParameterSourceCountName         'srcs'
  48. #define kParameterSourceCountID         1
  49.  
  50. #define kParameterDependencyName         'deep'
  51. #define kParameterDependencyID             1
  52.  
  53.  
  54.     #define kParameterListDependsUponColorProfiles    OSType { "prof" }
  55.     #define kParameterListDependsUponFonts            OSType { "font" }
  56.  
  57. #define kParameterEnumList                 'enum'
  58. #define kParameterAtomTypeAndID         'type'
  59.  
  60.         #define kNoAtom                 OSType { "none" }
  61.         #define kAtomNoFlags             long { "0" }
  62.         #define kAtomNotInterpolated     long { "1" }
  63.         #define kAtomInterpolateIsOptional     long { "2" }
  64.  
  65. #define kParameterDataType                 'data'
  66.  
  67.         #define kParameterTypeDataLong         long { "2" }
  68.         #define kParameterTypeDataFixed     long { "3" }
  69.         #define kParameterTypeDataRGBValue     long { "8" }
  70.         #define kParameterTypeDataDouble     long { "11" }
  71.         #define kParameterTypeDataText         OSType { "text" }
  72.         #define kParameterTypeDataEnum        OSType { "enum" }
  73.         #define kParameterTypeDataBitField     OSType { "bool" }
  74.         #define kParameterTypeDataImage        OSType { "imag" }
  75.  
  76. #define kParameterDataRange             'rang'
  77. #define kParameterDataBehavior             'ditl'
  78.  
  79.     // items edited via typing
  80.         #define kParameterItemEditText         OSType { "edit" }
  81.         #define kParameterItemEditLong         OSType { "long" }
  82.         #define kParameterItemEditFixed     OSType { "fixd" }
  83.         #define kParameterItemEditDouble     OSType { "doub" }
  84.  
  85.     // items edited via control(s)
  86.         #define kParameterItemPopUp         OSType { "popu" }
  87.         #define kParameterItemRadioCluster     OSType { "radi" }
  88.         #define kParameterItemCheckBox         OSType { "chex" }
  89.         #define kParameterItemControl         OSType { "cntl" }
  90.         
  91.     // special user items
  92.         #define kParameterItemLine             OSType { "line" }
  93.         #define kParameterItemColorPicker     OSType { "pick" }
  94.         #define kParameterItemGroupDivider    OSType { "divi" }
  95.         #define kParameterItemStaticText    OSType { "stat" }
  96.         #define kParameterItemDragImage        OSType { "imag" }
  97.  
  98.  
  99.  
  100.         // flags valid for lines and groups
  101.         #define kGraphicsNoFlags             long { "0" }
  102.         #define kGraphicsFlagsGray             long { "1" }
  103.  
  104.         // flags valid for groups
  105.         #define kGroupNoFlags                         long { "0" }
  106.         #define kGroupAlignText                     long { "65536" }
  107.         #define kGroupSurroundBox                     long { "131072" }
  108.         #define kGroupMatrix                         long { "262144" }
  109.         #define kGroupNoName                        long { "524288" }
  110.         #define kGroupSurroundWithGray                long { "131073" }
  111.         #define kGroupSurroundWithGrayAlign            long { "196609" }
  112.         #define kGroupSurroundWithGrayNoName        long { "655361" }
  113.         #define kGroupSurroundWithGrayAlignNoName    long { "720897" }
  114.         
  115.         // flags valid for popup/radiocluster/checkbox/control
  116.         #define kDisableControl            long { "1" }
  117.         #define kDisableWhenNotEqual    long { "1" }
  118.         #define kDisableWhenEqual        long { "17" }
  119.         #define kDisableWhenLessThan    long { "33" }
  120.         #define kDisableWhenGreaterThan    long { "49" }
  121.  
  122.         // flags valid for popups
  123.         #define kPopupStoreAsString        long { "65536" }
  124.  
  125. #define kParameterDataUsage             'use '
  126.  
  127.         #define kParameterUsagePixels        OSType { "pixl" }
  128.         #define kParameterUsageRectangle    OSType { "rect" }
  129.         #define kParameterUsagePoint        OSType { "xy  " }
  130.         #define kParameterUsage3DPoint        OSType { "xyz " }
  131.         #define kParameterUsageDegrees        OSType { "degr" }
  132.         #define kParameterUsageRadians        OSType { "rads" }
  133.         #define kParameterUsagePercent        OSType { "pcnt" }
  134.         #define kParameterUsageSeconds        OSType { "secs" }
  135.         #define kParameterUsageMilliseconds    OSType { "msec" }
  136.         #define kParameterUsageMicroseconds    OSType { "µsec" }
  137.         #define kParameterUsage3by3Matrix    OSType { "3by3" }
  138.  
  139. #define kParameterDataDefaultItem         'dflt'
  140. #define kParameterInfoLongName             '©nam'
  141. #define kParameterInfoCopyright         '©cpy'
  142. #define kParameterInfoDescription         '©inf'
  143. #define kParameterInfoWindowTitle         '©wnt'
  144. #define kParameterInfoPicture             '©pix'
  145. #define kParameterInfoManufacturer         '©man'
  146. #define kParameterInfoIDs                 1
  147.  
  148.  
  149. type 'cdec' {
  150.     hex string;
  151. };
  152.  
  153.  
  154. type 'cdci' {
  155.     pstring[31];
  156.     hex integer    version;
  157.     hex integer    revlevel;
  158.     hex longint    vendor;
  159.     hex longint    decompressFlags;
  160.     hex longint    compressFlags;
  161.     hex longint    formatFlags;
  162.     byte        compressionAccuracy;
  163.     byte        decompressionAccuracy;
  164.     integer        compressionSpeed;
  165.     integer        decompressionSpeed;
  166.     byte        compressionLevel;
  167.     byte        resvd;
  168.     integer        minimumHeight;
  169.     integer        minimumWidth;
  170.     integer        decompressPipelineLatency;
  171.     integer        compressPipelineLatency;
  172.     longint        privateData;
  173. };
  174.  
  175.  
  176. #define    compressorComponentType            'imco'
  177. #define    decompressorComponentType        'imdc'
  178.  
  179.  
  180. /* Resource type used for the creation of parameter description atoms */
  181. type 'atms' {
  182.     longint;    // root atom count
  183.     
  184.     array AtomArray {
  185.         literal longint;        // atomType
  186.         longint;                // atomID
  187.         longint noChildren = 0;    // children
  188.         longint =  $$CountOf(AtomData);
  189.         array AtomData {
  190.             switch {
  191.             case long:
  192.                 key literal longint = 'long';
  193.                 pstring;            // data
  194.             case short:
  195.                 key literal longint = 'shrt';
  196.                 pstring;            // data
  197.             case noMininumFixed:
  198.                 key literal longint = 'nmiF';
  199.                 pstring = "";        // data
  200.             case noMaximumFixed:
  201.                 key literal longint = 'nmaF';
  202.                 pstring = "";        // data
  203.             case noMininumDouble:
  204.                 key literal longint = 'nmiD';
  205.                 pstring = "";        // data
  206.             case noMaximumDouble:
  207.                 key literal longint = 'nmaD';
  208.                 pstring = "";        // data
  209.             case fixed:
  210.                 key literal longint = 'fixd';
  211.                 pstring;            // data
  212.             case double:
  213.                 key literal longint = 'doub';
  214.                 pstring;            // data
  215.             case string:
  216.                 key literal longint = 'str ';
  217.                 pstring;            // data
  218.             case OSType:
  219.                 key literal longint = 'osty';
  220.                 pstring;            // data
  221.             };
  222.             
  223.         };
  224.     };
  225. };
  226.  
  227.  
  228. #endif /* __IMAGECODEC_R__ */
  229.  
  230.